package tt.dz.service.sys;

import tt.dz.entity.base.JsonCommon;
import tt.dz.entity.base.JsonForList;
import tt.dz.entity.base.OmsCommonParam;
import tt.dz.entity.exception.OmsDaoException;
import tt.dz.entity.system.OmsOperList;
import tt.dz.entity.system.OmsRole;

import java.io.IOException;

public interface RoleService 
{
	String add(OmsRole role, OmsOperList current_user) throws Exception;
	JsonCommon<?> update(OmsRole role);
	JsonCommon<?> delete(String roleId);
	/**
	 * 管理员查询分页管理角色
	 * @param param
	 * @param role
	 * @return
	 */
	JsonForList<?> findPageOrAll(OmsCommonParam param,OmsRole role);
	/**
	 * 根据不同用户归属查询相应角色列表
	 * 
	 * 因为商户和运营商分支结构不能
	 * @param entityType
	 * @return
	 */
    JsonForList<?> findRolesByEntityType(int entityType);
    /**
     * 分配给角色分配权限
     * @param roleId
     * @param urlIds
     * @return
     */
	JsonCommon<?> addUrlPower(String roleId, String[] urlIds) throws OmsDaoException;
	
	//查询用户已经绑定的角色
	JsonForList<?> findExistRolesByOperId(String operId);
	//查询用户尚未绑定（按用户实体类型和实体ID可以绑定）的角色
	JsonForList<?> findCanbindRolesByOperId(String operId, String entityId, String entityType);
	
	
}
